/**
 * # 描述
 * common公用模块
 *
 * **使用范例**：
 *
 *     @example
 *     var common = require('common');
 *     common.isIE();
 * @class common
 * */
define(function(require, exports, module) {
   // var login_js = require("login");
    $ = jQuery =  require('jquery');
    require("layer").config({
        path:MD.layerDir,
        btnAlign:"c"
    });
   /* var toolbar = require("toolbar");
    toolbar.init(exports);*/
 /*   setTimeout(function(){
        require("toolbar")
    },100);*/
/*    //历史记录后退、前进监听
    window.addEventListener('popstate', function() {
        var state = history.state;
        //console.log(state);
        //监听通过ajax操作是历史时，页面刷新
        if(state.type=="ajax"){
            window.location.reload();
        }
    });*/
    /**
     * layer加载插件引用内存
     * @type int
     * */
    exports.loadingIndex=null;
    exports.statusCode={
        404: function(){
            if(exports.loadingIndex){
                layer.close(exports.loadingIndex);
            }
            layer.alert('<p class="cRed">找不到请求路径</p>',{title:"系统出错",icon:0});
        },
        500:function(){
            if(exports.loadingIndex){
                layer.close(exports.loadingIndex);
            }
            layer.alert('<p class="cRed">500错误</p>',{title:"系统出错",icon:0});
        }
    };

    //一般用于注册登录返回错误信息
    exports.error=function(msg,callback){
        if(exports.loadingIndex){
            layer.close(exports.loadingIndex);
        }
        layer.alert('<div class="c-danger tc">'+msg+'</div>',{title:"温馨提示",end:function(){
            if(!!callback) {
                callback();
            }
        }});
    };

    /**
     * 异步操作登录超时处理(用于拦截器的页面)
     * @param {function}  [callback]
     * 当无回调时，默认关闭后刷新页面
     */
    exports.ajaxSessionTimeout = function(callback){
        $(document).ajaxError(function(event, xhr, opt, error){
            var loginMarkReg=/<title>.*?登录.*?<\/title>/;
            if(loginMarkReg.test(xhr.responseText)){
                layer.alert('<p class="tc cRed">登录超时</p>',{title:"温馨提示",end:function(){
                    if(typeof callback == "function"){
                        callback(opt);
                    }else{
                        //刷新页面
                        window.location.reload();
                    }
                }});
            }
        });
    };


    /**
     * 标识当前页状态
     * 作用：主要用于网站的左侧导航leftNav当前页标识，通用索引项
     * @param  {dlindex} 父级所在的索引位置
     * @param {ddindex} ddindex 当前所在的索引位置
     * @param {String} [className="active"]
     * 选中样式名｜默认为“active”。
     * */
    exports.leftNav = function(option){
        var defaults = {
            dl: 0,
            dd: 0,
            noSign: '.noSign',
            className:"active"
        };
        var opt = $.extend(defaults,option);
        var $obj = $("#leftNav");
        var dl = $obj.find("dl").eq(opt.dl);

        dl.find("dd a").eq(opt.dd).addClass(opt.className);
        if(opt.dd==null) {//没有子菜单才高亮
            dl.find("dt a").addClass(opt.className);
            $obj.find("dd a").removeClass(opt.className);
        }
        var auth = $obj.data("auth");//实名认证状态 1:审核中 2：已通过 3： 未通过
        var bank = $obj.data("bank");//银行签约 0:未签约 1：已签约 2： 已解约

        //银行签约 未实名认证拦截
        $obj.find('[data-act="bank"]').on("click",function(){
            if(auth!=2) {
                layer.open({
                    title:"温馨提示",
                    btn:["实名认证","取消"],
                    content:'<div class="c-danger tc">您还未完善实名认证信息，或实名认证信息正审核中，请稍后再进行银行签约！</div>',
                    yes:function(){
                        location.href=$obj.find(".auth").attr("href");
                    }
                });
                return false;
            }
        });
        //资金 未实名认证与银行签约拦截
        $obj.find('[data-act="fund"]').on("click",function(){
            if(auth!=2||bank!=1) {
                var tip,btn,href;
                if(auth!=2){
                    tip = "您还未完善实名认证与银行签约信息，请先实名认证";
                    btn = "实名认证";
                    href = $obj.find(".auth").attr("href")
                }else if(bank==0) {
                    tip = "您还未完善银行签约信息，请先银行签约";
                    btn = "银行签约";
                    href = $obj.find(".bank").attr("href")
                }else if(bank==2) {
                    tip = "您已经解约，请重新进行银行签约";
                    btn = "银行签约";
                    href = $obj.find(".bank").attr("href")
                }
                layer.open({
                    title:"温馨提示",
                    btn:[btn,"取消"],
                    content:'<div class="c-danger tc">'+tip+'</div>',
                    yes:function(){
                        location.href=href;
                    }
                });
                return false;
            }
        });
        //ajax未登录跳转拦截提示
        exports.ajaxSessionTimeout();
    };

    //顶部导航
    exports.topMenu = function(index) {
        var $obj = $("#topMenu");
        var li = $obj.find("li").eq(index);
        $obj.find(".active").removeClass("active");
        li.children("a").addClass("active");
    };
    /**
     * 功能：全选/不全选/点选
     * @param {$} $chkAll 操作全选/不全选Checkbox
     * @param {$} $chkItem Checkbox项
     * @param {$} $selValue 隐藏表单项，用于存放选中值，于逗号隔开
     * @param {function} checkCallBack 选中回调
     */
    exports.checkBox = function($chkAll,$chkItem,$selValue,checkCallBack){
        var __checkValue=function(){
            if($selValue!=null){
                var str=[];
                $chkItem.filter(':checked').each(function(){
                    str.push($(this).val());
                });
                $selValue.val(str+"");
            }
            if(typeof checkCallBack =="function"){
                checkCallBack();
            }
        };
        $chkAll.off("change");
        $chkItem.off("change");
        $chkAll.change(function(){
            $chkAll.prop('checked',this.checked);
            $chkItem.prop('checked',this.checked);
            __checkValue();
        });
        $chkItem.change(function(e){
            e.stopPropagation();
            $chkAll.prop('checked', $chkItem.size() == $chkItem.filter(':checked').size());
            __checkValue();
        }).change();

    };

    /**
     * 判断是否为IE
     * @return {Number} 返回IE版本（6-9），其他返回-1
     * */
    exports.isIE=function(){
        if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/6./i)=="6."){
            return 6
        }else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/7./i)=="7."){
            return 7
        }else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/8./i)=="8."){
            return 8
        }else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/9./i)=="9."){
            return 9
        }
        return -1;
    };
    /**
     * 跨浏览器placeHolder
     * 对于不支持原生placeHolder的浏览器，通过value或插入span元素两种方案模拟
     * @param {Object} obj 要应用placeHolder的表单元素对象
     * @param {Boolean} span 是否采用悬浮的span元素方式来模拟placeHolder，默认值false,默认使用value方式模拟
     * */
    exports.placeHolder =function(obj,span){
        if (!obj.getAttribute('placeholder') && exports.isIE()>9) return;
        var imitateMode = span===true?true:false;
        var supportPlaceholder = 'placeholder' in document.createElement('input');
        if (!supportPlaceholder) {
            var defaultValue = obj.getAttribute('placeholder');
            var type = obj.getAttribute('type');
            if (!imitateMode) {
                obj.onfocus = function () {
                    (obj.value == defaultValue) && (obj.value = '');
                    obj.style.color = '';
                }
                obj.onblur = function () {
                    if (obj.value == defaultValue) {
                        obj.style.color = '';
                    } else if (obj.value == '') {
                        obj.value = defaultValue;
                        obj.style.color = '#ACA899';
                    }
                }
                obj.onblur();
            } else {
                var placeHolderCont = document.createTextNode(defaultValue);
                var oWrapper = document.createElement('span');
                var width=(obj.offsetWidth - parseInt((getStyle(obj, 'marginLeft')=="auto"?0:(getStyle(obj, 'marginLeft')))))==0?100:(obj.offsetWidth - parseInt((getStyle(obj, 'marginLeft')=="auto"?0:(getStyle(obj, 'marginLeft'))))) + 'px';
                oWrapper.style.cssText = 'position:absolute; color:#ACA899; display:inline-block; overflow:hidden;';
                oWrapper.className = 'wrap-placeholder';
                oWrapper.style.fontFamily = getStyle(obj, 'fontFamily');
                oWrapper.style.fontSize = getStyle(obj, 'fontSize');
                oWrapper.style.marginLeft = parseInt(getStyle(obj, 'marginLeft')) ? parseInt(getStyle(obj, 'marginLeft')) + 3 + 'px' : 3 + 'px';
                oWrapper.style.marginTop = parseInt(getStyle(obj, 'marginTop'))!=0 ? getStyle(obj, 'marginTop'): 0 + 'px';
                oWrapper.style.paddingLeft = getStyle(obj, 'paddingLeft');
                $(oWrapper).css('width',width)
                oWrapper.style.height = obj.offsetHeight==0?34:obj.offsetHeight + 'px';
                oWrapper.style.lineHeight = obj.nodeName.toLowerCase()=='textarea'? '':(obj.offsetHeight==0?34:obj.offsetHeight) + 'px';
                oWrapper.appendChild(placeHolderCont);
                obj.parentNode.insertBefore(oWrapper, obj);
                oWrapper.onclick = function () {
                    obj.focus();
                };
                //绑定input或onpropertychange事件,ie9中删除时无法触发此事件
                if (typeof(obj.oninput)=='object') {//oninput是onpropertychange的非IE浏览器版本，支持firefox和opera等浏览器，但有一点不同，它绑定于对象时，并非该对象所有属性改变都能触发事件，据我所知，它只在对象value值发生改变时奏效。测试代码如下：
                    obj.addEventListener("input", changeHandler, false);
                    obj.onpropertychange = changeHandler;
                    obj.onkeyup = delHandler;
                } else {
                    obj.onpropertychange = changeHandler;//onpropertychange的话，只要当前对象属性发生改变，都会触发事件，因此用途更为广泛，只可惜它是IE only；
                    obj.onkeyup = delHandler;
                    obj.onkeyup = changeHandler;
                }
                function changeHandler() {
                    oWrapper.style.display = obj.value != '' ? 'none' : 'inline-block';
                }
                function delHandler(e){//监听del、backspace、ctrl+x
                    var e = e || window.event;
                    if(e.keyCode == 8 || e.keyCode == 46 || (event.ctrlKey&&e.keyCode == 88) || (event.ctrlKey&&e.keyCode == 86) ){//8==keyCode,46==delete,88==x,ctrlKey:检查ctrl键的状态,当ctrl键按下时，值为True否则为False,只读
                        oWrapper.style.display = obj.value != '' ? 'none' : 'inline-block';
                    }
                }
                /**
                 * 获取样式
                 * @param {Object} obj 要获取样式的对象
                 * @param {String} styleName 要获取的样式名
                 * */
                function getStyle(obj, styleName) {
                    var oStyle = null;
                    if (obj.currentStyle)
                        oStyle = obj.currentStyle[styleName];
                    else if (window.getComputedStyle)
                        oStyle = window.getComputedStyle(obj, null)[styleName];
                    return oStyle;
                }
            }
        }
    };
    /**
     * placeholder IE9及以下调用入口
     */
    exports.ieTo_placeholder = function(){
        if (exports.isIE()>9) return;
        $(':input[placeholder],textarea[placeholder]').each(function(index,element){
            exports.placeHolder(element,true);
        });
    };
    exports.str={
        //
        dTrim : function(s){
            if(s!=null && s!="") {
                return s.replace(/(^\n+)|(\n+$)|(^\s*)|(\s*$)|(^　*)|(　*$)/g,"");
            }else{
                return "";
            }
        },
        //url参数转json
        par2Json:function(string, overwrite){
            var obj = {};
            var pairs = string.split('&');
            var d = decodeURIComponent;
            var name,value;
            $.each(pairs, function(i,pair) {
                pair = pair.split('=');
                name = d(pair[0]);
                value = d(pair[1]);
                obj[name] = overwrite || !obj[name] ? value : [].concat(obj[name]).concat(value);
            });
            return obj;
        },
        len : function(str,type){
            var Length=0;
            if(arguments.length>0){
                if(type==2){
                    for(var i=0;i<str.length;i++){
                        Length = Length + (str.charCodeAt(i)>128?2:1);//一个中文字算二,一个英文字算一
                    }
                }else{
                    for(var i=0;i<str.length;i++){
                        Length = Length + (str.charCodeAt(i)>128?1:0.5);//一个中文字算一,两个英文字算一
                    }
                }
                return Math.ceil(Length);//有半个字要+1
            }else{
                return null;
            }
        }
    };

    //url,data,callback
    exports.ajaxHandle=function(options){
        var defaults={
            type:"post",
            url:'',
            data:null,
            dataType:"json",
            async:true,
            $btn:null,
            closeLoading: true,//嵌套调用ajax，外层ajax要设为false，否则里层外层ajax的always会关闭里层beforesend的loding
            isLoading:true,
            callback:null,      //成功返回回调入口
            errorback: null  //错误返回回调入口
        };
        var opts=$.extend(defaults ,options);
        var url=opts.url;
        url += url.indexOf("?") == -1 ? "?" : "&";
        url += "t=" + new Date().getTime();
        var request = $.ajax({
            type:opts.type,
            url:url,
            data:opts.data,
            async:opts.async,
            dataType:opts.dataType,
            closeLoading:opts.closeLoading,
            beforeSend:function(){

                if(opts.isLoading){
                    exports.loadingIndex=layer.load(16,{shade: [0.1,'#fff']});
                }
                if(opts.$btn){
                    opts.$btn.prop("disabled",true);
                }
            }
        }).fail(function(jqXHR,textStatus,errorThrown){

            if(exports.loadingIndex){
                layer.close(exports.loadingIndex);
            }
            //layer.alert('<div class="red" style="margin-left:50px;"><p>textStatus：'+textStatus+'</p><p>status：'+jqXHR.status+'</p><p>readyState：'+jqXHR.readyState+'</p></div>',{title:"请求出错信息"});

            layer.alert('<div class="red" style="margin-left:50px;">系统超时，请稍后重试！</div>',{title:"请求出错信息"});

            if(opts.$btn) {
                opts.$btn.prop("disabled", false);
            }
        }).done(function(data){

            //html类型
            if(opts.dataType == "html"){
                //ajax重定向没办法捕捉，所以只能通过页面特定字符来判断跳到登录页面了
                var loginMarkReg=/<title>.*?登录.*?<\/title>/;
                if(loginMarkReg.test(data)){
                    layer.alert('<p class="tc cRed">登录超时</p>',{title:"温馨提示",end:function(){
                        //刷新页面
                        window.location.reload();
                    }});
                    return false;
                }
                if(typeof opts.callback == "function") {
                    opts.callback(data);
                }
                return;
            }

            if( data.code ==="000"){
                if(typeof opts.callback == "function"){
                    opts.callback(data);
                }else {
                    layer.msg('<div class="msg_success">'+data.message+'</div>',{shade:0.1,skin:"layui-layer-hui"},function(){
                        window.location.reload(true);
                    });
                }
            }else{
                if(opts.$btn) {
                    opts.$btn.prop("disabled", false);
                }
                if(typeof opts.errorback == "function"){
                    opts.errorback(data);
                }else{
                    layer.alert('<p class="tc c-danger">'+data.message+'</p>',{title:"温馨提示"});
                }

                if(!opts.closeLoading){
                    //嵌套ajax的请求失败，就需要关闭loading
                    layer.close(exports.loadingIndex);
                }
            }
        }).always(function(){
            if(exports.loadingIndex&&opts.closeLoading){
                layer.close(exports.loadingIndex);
            }
            /*if(opts.$btn) {
                opts.$btn.prop("disabled", false);
            }*/
        });
        return request;
    };

    /**
     * 功能：页面HTML加载
     * @url 页面url
     * @data 搜索参数序列化对象
     * @$pageListPanel 页面HTML容器，默认为$("#htmlContainer") 也用作一个回调
     */
    exports.loadPageHTML = function(url,data,$pageListPanel,isLoading,isCheckLogin) {
        var _url=url;
        _url += url.indexOf("?") == -1 ? "?" : "&";
        _url += "t=" + new Date().getTime();
        var $panel = $pageListPanel || $("#htmlContainer");
        var _isCheckLogin = isCheckLogin == null ? true : isCheckLogin;
        var _isLoading = isLoading == null?true:isLoading;
        //$panel.html($("<img src='/static/img/sys/loading.gif'/>")
        //.css({position:"relative",left:($panel.width()-150)/2,top:200}));
        //$.jBox.tip("数据加载中...请稍候...", "loading");
        $.ajax({
            type: "POST",
            url: _url,
            data:data,
            dataType: "html",
            statusCode:exports.statusCode,
            beforeSend:function(){
                if(_isLoading){
                    exports.loadingIndex=layer.load();
                }
            },
            success:function(html){
                if(exports.loadingIndex){
                    layer.close(exports.loadingIndex);
                }
                if(_isCheckLogin){
                    //ajax重定向没办法捕捉，所以只能通过页面特定字符来判断跳到登录页面了
                    var loginMarkReg=/<title>.*?登录.*?<\/title>/;
                    if(loginMarkReg.test(html)){
                        layer.alert('<p class="tc cRed">登录超时</p>',{title:"温馨提示",end:function(){
                            //刷新页面
                            window.location.reload();
                        }});
                        return false;
                    }
                }
                if(typeof $pageListPanel == "function"){
                    $pageListPanel(html);
                }else{
                    $panel.html(html);
                }
            },
            error:exports.error
        });
    };
 /**
     * 秒钟倒计时
     * @param {$} jqObj 显示秒数容器
     * @param {$} secs 为设定秒数
     * @param {function}  callback 为0秒时回调接入口
     * */
    exports.loadSecond = function(jqObj,secs,callback){
        var i=secs;
        var t= setInterval(function(){
            if(i == 0) {
                clearInterval(t);
                if(typeof(callback) == "function") callback();
            }else{
                //jqObj.text('请等待 ' + i + ' s');
                jqObj.text(i);
            }
            i--;
        },1000);
    };
    /**
     * 获取短信验证码
     * @param {$} $getBtn 按钮对象
     * @param {$} $mobile 手机号码文本框对象
     * @param {string}  getUrl 获取操作url
     * @param {boolean}  isGeetest 是否使用极验
     * @param {msgType}
     * case 1:break;//修改会员账号
       case 2:break;//修改登录密码,忘记密码
       case 3:break;//修改交易密码
       case 4:break;//注册大塑支付
        mpe注册不需要msgType
     * */
    exports.getCode = function($getBtn,msgType,$mobile,getUrl){

        //获取短信接口
        var getSMS = function(){
            //发送短信
            $.ajax({
                url: getUrl,
                type: 'post',
                async:false,
                data: {
                    mobile:$mobile==null ? null : $mobile.val(),
                    msgType:msgType
                },
                dataType: 'json',
                success: function(data){
                    if(data.code=='000'){
                        //确定已获取短信
                        $getBtn.off().removeClass("active").prop("disabled",true).html('重新获取（<i>120</i>）');
                        layer.open({type:1,title: false,closeBtn:0,content:"验证码已发出，请注意查收!<br/>如未收到，请重新获取",skin:"layui-layer-hui",success:function(l,i){
                            setTimeout(function(){
                                layer.close(i)
                            },3000);
                        }});
                        //倒计时
                        exports.loadSecond($getBtn.find('i'), 120, function(){
                            $getBtn.addClass("active").prop("disabled",false).html('重新获取短信').on('click', handleFn);
                            return false;
                        });
                    }else{
                        layer.alert("<p class='c-danger'>"+data.message+"</p>",{title:"温馨提示"});
                    }
                }
            });
        };
        var getUrl= getUrl || "/member/member/getSMS";
        //处理入口
        var handleFn=function(){
            var active=$getBtn.data("active");
            if(!active){
                return false;
            }
            layer.load();
            getSMS();
            layer.closeAll("loading");
            return false;
        };
        $getBtn.on('click', handleFn);
    };
    /**
     * 上传文件后缀名检测
     * @param {obj} fileObj为file对象
     * @param {string} fileTypes为允许的文件类型，多个用“|”隔开，如"jpg|gif|jpeg|png"
     */
    exports.testFile = function(fileObj,fileTypes){
        var obj = fileObj[0];
        var file = obj.value.match(/[^\/\\]+$/gi)[0];
        var rx=new RegExp("(?:"+fileTypes+")$", "gi");
        if(!rx.test(file)) {
            //清空表单
            if(window.ActiveXObject) {//for IE
                //这个清有问题，干脆不清空了
                //obj.select();
                //document.execCommand('delete');
                //obj.blur();
            } else if(window.opera) {//for opera
                obj.type="text";
                obj.type="file";
            } else obj.value="";//for FF,Chrome,Safari
            layer.alert('<p class="cRed">只允许上传'+fileTypes.replace(/\|/g,"、")+'格式的文件类型</p>',{title:"温馨提示",icon:0});
            return false;
        }
        return true;
    };

    //导出功能
    exports.exportFn=function(url,data){
        data=decodeURIComponent(data,true);
        // 获得url和data
        if( url && data ){
            // data 是 string 或者 array/object
            data = typeof data == 'string' ? data : $.param(data);
            // 把参数组装成 form的  input
            var inputs = '';
            $.each(data.split('&'), function(){
                var pair = this.split('=');
                inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
            });
            // request发送请求
            $('<form action="'+ url +'" method="post">'+inputs+'</form>').appendTo('body').submit().remove();
        }
    };

    /**
     * 输入后回车触发
     * @param {$} $input 输入框对象
     * @param {function} callback 回调
     * */
    exports.inputEnterCallback=function($input,callback){
        $input.keyup(function(e){
            if(!e) e = window.event;
            if((e.keyCode || e.which) == 13){
                callback(e);
                return false;
            }
        });
    };
    /**
     * 金额格式化
     * @param {int} s 金额
     * @param {Int} [n=2] 取小数位数(默认为取2位小数)
     * @return {string} 返回格式后的金额
     * */
    exports.formatMoney=function(s,n){
        n = n > 0 && n <= 20 ? n : 2;
        s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
        var l = s.split(".")[0].split("").reverse(),
            r = s.split(".")[1];
        t = "";
        for(i = 0; i < l.length; i ++ )
        {
            t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
        }
        return t.split("").reverse().join("") + "." + r;
    };

    /**
     * 字数输入检查
     * @param $input 输入框对象
     * @param options 参数配置
     * @returns {boolean}
     */
    exports.checkNumFormatInput=function ($input,options){
        layer.config({
            tipsMore:false
        });
        var defaults = {
            type:0,             //类型(小数位数，0为正整数)
            emptyTipStr:null,   //空值提示语
            tipStr:null,        //提示语
            max: null,          //最大值
            maxTipStr:null,     //超过最大值提示语
            min:null,           //最小值
            tipMinStr:null      //少于最小值提示语
        };
        var opts = $.extend(defaults, options);
        var num=$input.val();
        if(num=="" || num==0){
            var emptyTipStr=opts.emptyTipStr || "请输入大于0的数值";
            layer.tips(emptyTipStr, $input);
            return false;
        }
        if(opts.type==0){
            if (!/^\+?[1-9]\d*$/.test(num)) {
                var tipStr = opts.tipStr || "请输入正整数";
                layer.tips(tipStr, $input);
                return false;
            }
        }else if(opts.type==1){
            if (!/^([1-9]\d*|[0])(.\d{1})?$/.test(num)){
                var tipStr = opts.tipStr || "请输入1位小数正数或正整数";
                layer.tips(tipStr,$input);
                return false;
            }
        }else if(opts.type==2){
            if (!/^([1-9]\d*|[0])(.\d{1,2})?$/.test(num)){
                var tipStr = opts.tipStr || "请输入两位小数正数或正整数";
                layer.tips(tipStr,$input);
                return false;
            }
        }else{
            if (!/^([1-9]\d*|[0])(.\d{1,3})?$/.test(num)){
                var tipStr = opts.tipStr || "请输入三位小数正数或正整数";
                layer.tips(tipStr,$input);
                return false;
            }
        }

        //不能大于某个数
        if(opts.max!=null){
            var f_max = parseFloat(opts.max);
            var f_num = parseFloat(num);
            var result = f_num-f_max;
            if(result > 0){
                var maxTipStr = opts.maxTipStr || "您输入的数字不能大于"+f_max+"!";
                layer.tips(maxTipStr,$input);
                return false;
            }
        }
        //不能小于某个数
        if(opts.min!=null){
            var f_min = parseFloat(opts.min);
            var f_num = parseFloat(num);
            var result = f_num-f_min;
            if(result < 0){
                var maxTipStr = opts.maxTipStr || "您输入的数字不能小于"+f_max+"!";
                layer.tips(maxTipStr,$input);
                return false;
            }
        }
        return true;
    };

    /**
     * 字数输入检查
     * @param $input 输入框对象
     * @param options 参数配置
     */
    exports.unInputNumFormat=function ($input,options) {
        layer.config({
            tipsMore:false
        });
        var defaults = {
            type:0,             //类型(小数位数，0为正整数)
            tipStr:null,        //提示语
            max: null,          //最大值
            maxTipStr:null,     //超过最大值提示语
            min:null,           //最小值
            tipMinStr:null      //少于最小值提示语
        };
        var opts = $.extend(defaults, options);
        $input.keyup(function(e){
            var keyCode = e.keyCode;
            if( (keyCode > 95 && keyCode < 106 )|| keyCode == 110 ||//小键盘
                (keyCode > 47 && keyCode < 58) || keyCode == 190 || keyCode == 8 || //键盘
                (keyCode > 34 &&keyCode < 41) //home end 上下左右
                || keyCode == 46 //退格键
            ) {
                //正数
                if(opts.type==0 && (keyCode == 110 || keyCode == 190)){
                    return false;
                }
            }else {
                return false;
            }
        }).blur(function(e){
            var $this = $(this);
            //最后一位是小数点的话，移除
            //$this.val(($this.val().replace(/\.$/g, "")));
            exports.checkNumFormatInput($this,opts);
        });
    };

    /*!
     * 功能：Cookie操作
     * set参数：name,value必选的
     * options为{hours:null,path:null,domain:null,secure:false}
     * get(name)获取；
     * remove(name)移除
     * 2013-01-23
     */
    Cookie={
        set:function(name,value,options){
            var defaults={
                hours:24*7,		//几个钟后终止(7天)
                path:null,		//可访问cookie的目录
                domain:window.location.host.indexOf("dasu123.inet")!=-1 ? "dasu123.inet" : null, 	//可访问主机名
                secure:false 	//数据传输加密
            };
            var opts=$.extend(defaults ,options);
            var expires="";
            if(opts.hours != null){
                var date = new Date();
                var ms = opts.hours*3600*1000;
                date.setTime(date.getTime() + ms);
                expires= "; expires=" + date.toGMTString();
            }
            document.cookie = name + "=" + escape (value) + expires +
                ((opts.path == null) ? "" : ("; path=" + opts.path)) +
                ((opts.domain == null) ? "" : ("; domain=" + opts.domain)) +
                ((opts.secure) ? "; secure" : "");
        },
        get:function(name){
            var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
            if(arr != null){
                return unescape(arr[2]);
            }
            return null;
        },
        remove:function(name, domain, path){
            var cval=this.get(name);
            if(cval!=null){
                this.set(name,"",{hours: 0,path:"/"});
            }
        }
    };

    /**
     * select有默认选中值处理
     *
     * */
    if($("select").size()>0){
        $("select").each(function(){
            var val = $(this).data("value");
            if(!!val){
                $(this).val(val);
            }
        });
    }
    /**
     * 广告
     */
    (function(){
        $("#ad_vert .close_btn").on("click",function () {
            var now = new Date().getHours();
            var has = 24-now;
           // console.log(now,has);
            Cookie.set("ad_closed",1,{hours:has});

            $("#ad_vert").addClass("closed");
            //$("#ad_vert").remove();
        })
    })();
});